home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / -seriously_amiga- / shareware / programming / e / easyplugins / source / rawkey.e < prev    next >
Text File  |  1997-12-06  |  4KB  |  210 lines

  1. /*
  2.  
  3.   $VER: RawKey PlugIn 1.00 - By Fabio Rotondo (fsoft@intercom.it)
  4.  
  5.         Part of the EasyPLUGINs package
  6.  
  7.   V1.00 - Initial Release
  8.  
  9. */
  10.  
  11. OPT OSVERSION=37
  12. OPT MODULE
  13. OPT EXPORT
  14.  
  15.  
  16. MODULE 'tools/EasyGUI',
  17.        'intuition/intuition',
  18.        'graphics/text',
  19.        'workbench/workbench'
  20.  
  21. CONST PLA_KEY_UP = 76, PLA_KEY_DOWN = 77, PLA_KEY_RIGHT = 78, PLA_KEY_LEFT = 79,
  22.       PLA_KEY_CONTROL = 99,
  23.       PLA_KEY_LSHIFT = 96, PLA_KEY_RSHIFT = 97,
  24.       PLA_KEY_LALT = 100, PLA_KEY_RALT = 101,
  25.       PLA_KEY_LAMIGA = 102, PLA_KEY_RAMIGA = 103,
  26.       PLA_KEY_HELP = 95,
  27.       PLA_KEY_USERDATA = 1
  28.  
  29. ENUM PLA_KEY_F1=80, PLA_KEY_F2, PLA_KEY_F3, PLA_KEY_F4, PLA_KEY_F5, PLA_KEY_F6, PLA_KEY_F7, PLA_KEY_F8, PLA_KEY_F9, PLA_KEY_F10
  30.  
  31. OBJECT rawkey OF plugin
  32.   PRIVATE
  33.   up
  34.   down
  35.   left
  36.   right
  37.   control
  38.   lshift
  39.   rshift
  40.   lalt
  41.   ralt
  42.   lamiga
  43.   ramiga
  44.   help
  45.   f1
  46.   f2
  47.   f3
  48.   f4
  49.   f5
  50.   f6
  51.   f7
  52.   f8
  53.   f9
  54.   f10
  55.  
  56.   user
  57. ENDOBJECT
  58.  
  59. PROC init() OF rawkey
  60.   self.up:=NIL
  61.   self.down:=NIL 
  62.   self.left:=NIL 
  63.   self.right:=NIL 
  64.   self.control:=NIL 
  65.   self.lshift:=NIL 
  66.   self.rshift:=NIL 
  67.   self.lalt:=NIL 
  68.   self.ralt:=NIL 
  69.   self.lamiga:=NIL 
  70.   self.ramiga:=NIL 
  71.   self.help:=NIL 
  72.   self.f1:=NIL 
  73.   self.f2:=NIL 
  74.   self.f3:=NIL 
  75.   self.f4:=NIL 
  76.   self.f5:=NIL 
  77.   self.f6:=NIL 
  78.   self.f7:=NIL 
  79.   self.f8:=NIL 
  80.   self.f9:=NIL 
  81.   self.f10:=NIL
  82.  
  83.   self.user:=NIL
  84. ENDPROC
  85.  
  86. PROC end() OF rawkey IS EMPTY
  87.  
  88. PROC will_resize() OF rawkey IS 0,0
  89.  
  90. PROC min_size(ta:PTR TO textattr, fontheight) OF rawkey IS 0,0
  91.  
  92. PROC render(ta:PTR TO textattr, x, y, xs, ys, win:PTR TO window) OF rawkey IS EMPTY
  93.  
  94. PROC clear_render(win:PTR TO window) OF rawkey IS EMPTY
  95.  
  96. PROC message_test(imsg:PTR TO intuimessage, win:PTR TO window) OF rawkey
  97.   DEF c, x
  98.  
  99.   IF (imsg.class=IDCMP_RAWKEY)
  100.     c:=imsg.code
  101.     SELECT c
  102.       CASE PLA_KEY_UP
  103.         x:=self.up
  104.       CASE PLA_KEY_DOWN
  105.         x:=self.down
  106.       CASE PLA_KEY_RIGHT
  107.         x:=self.right
  108.       CASE PLA_KEY_LEFT
  109.         x:=self.left
  110.       CASE PLA_KEY_CONTROL
  111.         x:=self.control
  112.       CASE PLA_KEY_LSHIFT
  113.         x:=self.lshift
  114.       CASE PLA_KEY_RSHIFT
  115.         x:=self.rshift
  116.       CASE PLA_KEY_LALT
  117.         x:=self.lalt
  118.       CASE PLA_KEY_RALT
  119.         x:=self.ralt
  120.       CASE PLA_KEY_LAMIGA
  121.         x:=self.lamiga
  122.       CASE PLA_KEY_RAMIGA
  123.         x:=self.ramiga
  124.       CASE PLA_KEY_HELP
  125.         x:=self.help
  126.       CASE PLA_KEY_F1
  127.         x:=self.f1
  128.       CASE PLA_KEY_F2
  129.         x:=self.f2
  130.       CASE PLA_KEY_F3
  131.         x:=self.f3
  132.       CASE PLA_KEY_F4
  133.         x:=self.f4
  134.       CASE PLA_KEY_F5
  135.         x:=self.f5
  136.       CASE PLA_KEY_F6
  137.         x:=self.f6
  138.       CASE PLA_KEY_F7
  139.         x:=self.f7
  140.       CASE PLA_KEY_F8
  141.         x:=self.f8
  142.       CASE PLA_KEY_F9
  143.         x:=self.f9
  144.       CASE PLA_KEY_F10
  145.         x:=self.f10
  146.     ENDSELECT
  147.  
  148.     IF x THEN x(self.user)
  149.   ENDIF
  150. ENDPROC FALSE
  151.  
  152. PROC message_action(class, qual, code, win:PTR TO window) OF rawkey IS EMPTY
  153.  
  154. PROC setattrs(tags:PTR TO LONG) OF rawkey
  155.   DEF t,v
  156.  
  157.   WHILE (t:=Long(tags++))
  158.     v:=Long(tags++)
  159.     SELECT t
  160.       CASE PLA_KEY_UP
  161.         self.up:=v
  162.       CASE PLA_KEY_DOWN
  163.         self.down:=v
  164.       CASE PLA_KEY_RIGHT
  165.         self.right:=v
  166.       CASE PLA_KEY_LEFT
  167.         self.left:=v
  168.       CASE PLA_KEY_CONTROL
  169.         self.control:=v
  170.       CASE PLA_KEY_LSHIFT
  171.         self.lshift:=v
  172.       CASE PLA_KEY_RSHIFT
  173.         self.rshift:=v
  174.       CASE PLA_KEY_LALT
  175.         self.lalt:=v
  176.       CASE PLA_KEY_RALT
  177.         self.ralt:=v
  178.       CASE PLA_KEY_LAMIGA
  179.         self.lamiga:=v
  180.       CASE PLA_KEY_RAMIGA
  181.         self.ramiga:=v
  182.       CASE PLA_KEY_HELP
  183.         self.help:=v
  184.       CASE PLA_KEY_F1
  185.         self.f1:=v
  186.       CASE PLA_KEY_F2
  187.         self.f2:=v
  188.       CASE PLA_KEY_F3
  189.         self.f3:=v
  190.       CASE PLA_KEY_F4
  191.         self.f4:=v
  192.       CASE PLA_KEY_F5
  193.         self.f5:=v
  194.       CASE PLA_KEY_F6
  195.         self.f6:=v
  196.       CASE PLA_KEY_F7
  197.         self.f7:=v
  198.       CASE PLA_KEY_F8
  199.         self.f8:=v
  200.       CASE PLA_KEY_F9
  201.         self.f9:=v
  202.       CASE PLA_KEY_F10
  203.         self.f10:=v
  204.       CASE PLA_KEY_USERDATA
  205.         self.user:=v
  206.     ENDSELECT
  207.   ENDWHILE
  208. ENDPROC
  209.  
  210.